Log-based Multiplication Nomogram

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

6

7

8

9

10

20

30

40

50

60

70

80

90

100

Operation

L1 = (-4, 0)
L2 = (-4.001468625862128, 0.30102999566398114)
L3 = (-4, 0.47712125471966244)
L4 = (-4, 0.6020599913279623)
L5 = (-4, 0.6989700043360187)
L6 = (-4, 0.7781512503836435)
L7 = (-4, 0.8450980400142567)
L8 = (-4, 0.9030899869919434)
L9 = (-4, 0.9542425094393249)
L10 = (-4, 1)
A = Point(a)
B = Midpoint(L1, A)
u = Vector(L1, A)
L2' = Translate(L2, u)
L3' = Translate(L3, u)
L4' = Translate(L4, u)
L5' = Translate(L5, u)
L6' = Translate(L6, u)
L7' = Translate(L7, u)
L8' = Translate(L8, u)
L9' = Translate(L9, u)
L10' = Translate(L10, u)
M1: (x(B), lg(1) / 2)
M2: (x(B), lg(2) / 2)
M3: (x(B), lg(3) / 2)
M4: (x(B), lg(4) / 2)
M5: (x(B), lg(5) / 2)
M6: (x(B), lg(6) / 2)
M7: (x(B), lg(7) / 2)
M8: (x(B), lg(8) / 2)
M9: (x(B), lg(9) / 2)
M10: (x(B), lg(10) / 2)
M20: (x(B), lg(20) / 2)
M30: (x(B), lg(30) / 2)
M40: (x(B), lg(40) / 2)
M50: (x(B), lg(50) / 2)
M60: (x(B), lg(60) / 2)
M70: (x(B), lg(70) / 2)
M80: (x(B), lg(80) / 2)
M90: (x(B), lg(90) / 2)
M100: (x(B), lg(100) / 2)
poly1, l10, l1, a_1, l10' = Polygon(L10, L1, A, L10')
b = Segment(M100, M1)
C = Point(l10)
D = Point(a_1)
c = Segment(C, D)
E = Intersect(c, b)
yC: 10^(y(C))
text1: "" + yC + ""
yD: 10^(y(D))
text2: "" + yD + ""
yP: yC * yD
text3: "" + yP + ""
text4: "" + yC + " × " + yD + " = " + yP + ""
d = false

Tool: Complex Multiplication (command ComplexMultiplication)
Select Points at O(0, 0), P(0, -1), A and B for A*B
Input: O, P, A, B
Output: j, AB

c = Circle(O, A)
d = Circle(O, B)
D = Intersect(c, xAxis, 2)
b = Segment(O, A)
f = Segment(O, B)
G = Intersect(d, xAxis, 1)
g = Circle(D, P, G)
E = Intersect(g, yAxis, 2)
e = Circle(O, E)
a, h = AngularBisector(f, b)
D' = Mirror(D, a)
i = Ray(O, D')
AB = Intersect(e, i, 1)
j = Segment(O, AB)

Tool: Complex Division (command ComplexDivision)
Select Points O(0, 0), P(0, -1), A and B for A/B
Input: O, P, A, B
Output: l, C

A/B

c = Circle(O, A)
d = Circle(O, B)
D = Intersect(c, xAxis, 2)
e = AngularBisector(A, O, D)
B' = Mirror(B, e)
f = Ray(O, B')
E = Intersect(c, yAxis, 1)
F = Intersect(d, xAxis, 1)
g = Segment(F, E)
G = Midpoint(g)
h = OrthogonalLine(G, g)
i = Segment(P, F)
H = Midpoint(i)
j = OrthogonalLine(H, i)
I = Intersect(h, j)
k = Circle(I, F)
J = Intersect(k, xAxis, 2)
p = Circle(O, J)
C = Intersect(p, f)
l = Segment(O, C)

Tool: Complex Addition (command ComplexAddition)
Select Points O(0, 0), A and B for A + B
Input: O, A, B
Output: C', c

A + B

u = Vector(O, B)
C' = Translate(A, u)
c = Segment(O, C')

Tool: Complex Subtraction (command ComplexSubtraction)
Select Points O(0, 0), A and B for A - B
Input: O, A, B
Output: c, A'

A - B

u = Vector(B, O)
A'_1 = Translate(A, u)
A' = Translate(A, u)
c = Segment(O, A')